﻿using DTO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using BUS;
using System.IO;

namespace QuanLyRapChieuPhim
{
    public partial class frmDangKyPhim : Form
    {
        public frmDangKyPhim()
        {
            InitializeComponent();
        }

        List<RapChieu> dsRapChieu = new List<RapChieu>();
        List<DinhDangPhim> dsDinhDang = new List<DinhDangPhim>();
        List<TheLoaiPhim> dsTheLoai = new List<TheLoaiPhim>();

        private void frmDangKyPhim_Load(object sender, EventArgs e)
        {
            LoadDSDinhDangPhim();
            LoadDSRapChieu();
            LoadDSTheLoaiPhim();
        }

        private void LoadDSDinhDangPhim()
        {
            dsDinhDang = DinhDangPhimBUS.LayDSDinhDang();
            cbDinhDang.DataSource = dsDinhDang;
            cbDinhDang.ValueMember = "MaDinhDangPhim";
            cbDinhDang.DisplayMember = "TenDinhDangPhim";
        }

        private void LoadDSRapChieu()
        {            
            dsRapChieu = RapChieuBUS.LayDSRapChieu();
            if (dsRapChieu.Count <= 0)
            {
                MessageBox.Show("Chưa có rạp nào trong hệ thống! \nMời thêm thông tin rạp trước khi thêm phim", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                frmThemRap frm = new frmThemRap();
                frm.ShowDialog();
                this.Close();
            }
            else
            {
                cbRapChieu.DataSource = dsRapChieu;
                cbRapChieu.ValueMember = "MaRap";
                cbRapChieu.DisplayMember = "TenRap";
            }           
        }

        private void LoadDSTheLoaiPhim()
        {
            dsTheLoai = TheLoaiPhimBUS.LayDSTheLoai();
            cbTheLoai.DataSource = dsTheLoai;
            cbTheLoai.ValueMember = "MaTheLoaiPhim";
            cbTheLoai.DisplayMember = "TenTheLoaiPhim";
        }               

        private void btnChooseImage_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Filter = "JPG Files(*.jpg)|*.jpg|PNG Files(*.png)|*.png|All File(*.*)|*.*";
            dlg.ShowDialog();
            string path = dlg.FileName;
            if (File.Exists(path))
            {
                pb.ImageLocation = path;
                txtPath.Text = path;
            }
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            if (txtTrailer.Text == "" || txtTenPhim.Text == "" || txtNuocSX.Text == "" || txtHSX.Text == "" || txtGioiThieu.Text == "" || txtDV.Text == "")
            {
                MessageBox.Show("Vui lòng điền đủ các thông tin phim!!", "Cảnh Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            else if (txtDV.Text.Length < 10 || txtGioiThieu.Text.Length < 10)
            {
                MessageBox.Show("Thông tin Diễn viên hoặc Giới thiệu Phim dưới 10 kí tự. Vui lòng nhập lại!!", "Cảnh Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            else if (nudBinhChon.Value == 0 || nudNamSX.Value == 0 || nudThoiLuong.Value == 0)
            {
                MessageBox.Show("Thông tin bình chọn phim hoặc Năm sản xuất phim hoặc Thời lượng phim không được giá trị 0!!", "Cảnh Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            else
            {
                int kq;
                Phim p = new Phim();

                MemoryStream ms = new MemoryStream();
                pb.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                byte[] img_arr = new byte[ms.Length];
                ms.Read(img_arr, 0, img_arr.Length);

                p.TenPhim = txtTenPhim.Text;
                p.GioiThieuPhim = txtGioiThieu.Text;
                p.ThoiLuongPhim = nudThoiLuong.Value.ToString();
                p.NamSX = nudNamSX.Value.ToString();
                p.NuocSX = txtNuocSX.Text;
                p.HangSX = txtHSX.Text;
                p.DsDienVien = txtDV.Text;
                p.Poster = img_arr;
                p.Trailer = txtTrailer.Text;
                p.BinhChonPhim = nudBinhChon.Value.ToString();
                p.MaDinhDang = cbDinhDang.SelectedValue.ToString();
                p.MaRap = cbRapChieu.SelectedValue.ToString();
                p.MaTL1 = cbTheLoai.SelectedValue.ToString();

                if (ms.Length > 250000)
                {
                    MessageBox.Show("Hình ảnh có kích thước không được quá 250KB!!!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                else
                {
                    kq = PhimBUS.ThemPhim(p);
                    if (kq == 0)
                    {
                        MessageBox.Show("Thêm dữ liệu thành công!!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("Thêm dữ liệu thất bại!!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }          
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            txtTrailer.ResetText();
            txtTenPhim.ResetText();
            txtNuocSX.ResetText();
            txtHSX.ResetText();
            txtGioiThieu.ResetText();
            txtDV.ResetText();
        }

        private void btnDong_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}
